private Class<?> findVersionClass() {
    /*
     * The known versions "enum" class has moved packages and been renamed over time:
     *
     * 1. org.apache.geode.internal.Version
     * 2. org.apache.geode.internal.serialization.Version
     * 3. org.apache.geode.internal.serialization.KnownVersion
     *
     * We search in order 3,1,2 because when we renamed the class "KnownVersion"
     * we also had an interface in the same package, called "Version" so we want to
     * avoid finding that interface when we really want the "enum" class.
     */
    try {
      return Class.forName("org.apache.geode.internal.serialization.KnownVersion");
    } catch (ClassNotFoundException e) {
      try {
        return Class.forName("org.apache.geode.internal.Version");
      } catch (ClassNotFoundException e2) {
        try {
          return Class.forName("org.apache.geode.internal.serialization.Version");
        } catch (ClassNotFoundException e3) {
          System.out.println("classpath is " + System.getProperty("java.class.path"));
          throw new IllegalStateException(
              "Unable to locate Version or KnownVersion in order to establish the product's serialization version",
              e3);
        }
      }
    }
  }
Returns a list of testable versions sorted from oldest to newest

<p>
Note: if you need to compare version strings use {@link TestVersion#compare(String, String)} or
{@link TestVersion#equals}.

@return a list of testable versions sorted from oldest to newest
geode-junit/src/main/java/org/apache/geode/test/version/VersionManager.java