class NetcdfDataReader extends DataReader {

    public static Set<String> getVariables(String path) {
        try (NetcdfDataset ncd = NetcdfDatasets.openDataset(path)) {
            List<Variable> variables = ncd.getVariables();
            Set<String> variableNames = new HashSet<>();
            variables.forEach(variable -> {
                if (variable instanceof VariableDS) {
                    VariableDS variableDS = (VariableDS) variable;
                    List<CoordinateSystem> coordinateSystems = variableDS.getCoordinateSystems();
                    if (!coordinateSystems.isEmpty()) {
                        variableNames.add(variable.getFullName());
                    }
                }
            });
            return variableNames;
        } catch (Exception e) {
            logger.log(Level.SEVERE, e, e::getMessage);
        }
        return Collections.emptySet();
    }

      NetcdfDataReader(DataReaderBuilder builder);

}