code: private boolean isRestorable(HivePartitionDataset dataset, HivePartitionVersion version)
        throws IOException {
      if (version.getLocation().toString().equalsIgnoreCase(dataset.getLocation().toString())) {
        return false;
      }
      FileSystem fs = ProxyUtils.getOwnerFs(new State(this.state), version.getOwner());
      if (!HadoopUtils.hasContent(fs, version.getLocation())) {
        return false;
      }
      return true;
    }
docs: A version is called restorable if it can be used to restore dataset.
  
  If a version is pointing to same data location as of the dataset, then it can't be used for restoring
  If a version is pointing to an empty data location, then it can't be used for restoring