code: public List<String> getSortedDatabases() {
  
          if (m_sortedDatabaseKeys == null) {
              List<String> databases = m_databaseKeys;
              List<String> sortedDatabases = new ArrayList<String>(databases.size());
              SortedMap<Integer, String> mappedDatabases = new TreeMap<Integer, String>();
              for (int i = 0; i < databases.size(); i++) {
                  String key = databases.get(i);
                  Integer ranking = new Integer(0);
                  try {
                      ranking = Integer.valueOf(getDbProperty(key + ".ranking"));
                  } catch (Exception e) {
                      // ignore
                  }
                  mappedDatabases.put(ranking, key);
              }
  
              while (mappedDatabases.size() > 0) {
                  // get database with highest ranking
                  Integer key = mappedDatabases.lastKey();
                  String database = mappedDatabases.get(key);
                  sortedDatabases.add(database);
                  mappedDatabases.remove(key);
              }
              m_sortedDatabaseKeys = sortedDatabases;
          }
          return m_sortedDatabaseKeys;
      }
docs: Returns a sorted list with they keys (e.g. "mysql", "generic" or "oracle") of all available
  database server setups found in "/setup/database/" sorted by their ranking property.<p>
  
  @return a sorted list with they keys (e.g. "mysql", "generic" or "oracle") of all available database server setups