code: public List<ConfigKeyPath> getOwnImports(ConfigKeyPath configKey, String version, Optional<Config> runtimeConfig)
        throws VersionDoesNotExistException {
      Preconditions.checkNotNull(configKey, "configKey cannot be null!");
      Preconditions.checkArgument(!Strings.isNullOrEmpty(version), "version cannot be null or empty!");
  
      List<ConfigKeyPath> configKeyPaths = new ArrayList<>();
      Path datasetDir = getDatasetDirForKey(configKey, version);
      Path includesFile = new Path(datasetDir, INCLUDES_CONF_FILE_NAME);
  
      try {
        if (!this.fs.exists(includesFile)) {
          return configKeyPaths;
        }
  
        FileStatus includesFileStatus = this.fs.getFileStatus(includesFile);
        if (!includesFileStatus.isDirectory()) {
          try (InputStream includesConfInStream = this.fs.open(includesFileStatus.getPath())) {
            configKeyPaths.addAll(getResolvedConfigKeyPaths(includesConfInStream, runtimeConfig));
          }
        }
      } catch (IOException e) {
        throw new RuntimeException(String.format("Error while getting config for configKey: \"%s\"", configKey), e);
      }
  
      return configKeyPaths;
    }
docs: Retrieves all the {@link ConfigKeyPath}s that are imported by the given {@link ConfigKeyPath}. This method does this
  by reading the {@link #INCLUDES_CONF_FILE_NAME} file associated with the dataset specified by the given
  {@link ConfigKeyPath}. If the {@link Path} described by the {@link ConfigKeyPath} does not exist, then an empty
  {@link List} is returned.
  
  @param  configKey      the config key path whose tags are needed
  @param  version        the configuration version in the configuration store.
  
  @return a {@link List} of {@link ConfigKeyPath}s where each entry is a {@link ConfigKeyPath} imported by the dataset
  specified by the configKey.
  
  @throws VersionDoesNotExistException if the version specified cannot be found in the {@link ConfigStore}.