code: @Override
    public Collection<ConfigKeyPath> getChildren(ConfigKeyPath configKey, String version)
        throws VersionDoesNotExistException {
      Preconditions.checkNotNull(configKey, "configKey cannot be null!");
      Preconditions.checkArgument(!Strings.isNullOrEmpty(version), "version cannot be null or empty!");
  
      List<ConfigKeyPath> children = new ArrayList<>();
      Path datasetDir = getDatasetDirForKey(configKey, version);
  
      try {
        if (!this.fs.exists(datasetDir)) {
          return children;
        }
  
        for (FileStatus fileStatus : this.fs.listStatus(datasetDir)) {
          if (fileStatus.isDirectory()) {
            children.add(configKey.createChild(fileStatus.getPath().getName()));
          }
        }
        return children;
      } catch (IOException e) {
        throw new RuntimeException(String.format("Error while getting children for configKey: \"%s\"", configKey), e);
      }
    }
docs: Retrieves all the children of the given {@link ConfigKeyPath} by doing a {@code ls} on the {@link Path} specified
  by the {@link ConfigKeyPath}. If the {@link Path} described by the {@link ConfigKeyPath} does not exist, an empty
  {@link Collection} is returned.
  
  @param  configKey      the config key path whose children are necessary.
  @param  version        specify the configuration version in the configuration store.
  
  @return a {@link Collection} of {@link ConfigKeyPath} where each entry is a child of the given configKey.
  
  @throws VersionDoesNotExistException if the version specified cannot be found in the {@link ConfigStore}.