code: @Override
    public Collection<T> findDatasetVersions(Dataset dataset) throws IOException {
      FileSystemDataset fsDataset = (FileSystemDataset) dataset;
      Path versionGlobStatus = new Path(fsDataset.datasetRoot(), globVersionPattern());
      FileStatus[] dataSetVersionPaths = this.fs.globStatus(versionGlobStatus);
  
      List<T> dataSetVersions = Lists.newArrayList();
      for (FileStatus dataSetVersionPath : dataSetVersionPaths) {
        T datasetVersion =
            getDatasetVersion(PathUtils.relativizePath(dataSetVersionPath.getPath(), fsDataset.datasetRoot()),
                dataSetVersionPath);
        if (datasetVersion != null) {
          dataSetVersions.add(datasetVersion);
        }
      }
  
      return dataSetVersions;
    }
docs: Find dataset versions in the input {@link org.apache.hadoop.fs.Path}. Dataset versions are subdirectories of the
  input {@link org.apache.hadoop.fs.Path} representing a single manageable unit in the dataset.
  See {@link org.apache.gobblin.data.management.retention.DatasetCleaner} for more information.
  
  @param dataset {@link org.apache.hadoop.fs.Path} to directory containing all versions of a dataset.
  @return Map of {@link org.apache.gobblin.data.management.version.DatasetVersion} and {@link org.apache.hadoop.fs.FileStatus}
  for each dataset version found.
  @throws IOException