Infatti la chiamata a getCatalogs() restituisce solo i nomi di catalogo ( che se non sbaglio, MySQL non gestisce ) per il database specifico a cui ti sei collegato ( che e' stato specificato nella chiamata a DriverManager.getConnection() ).

Nel caso specifico di MySQL, direi che puoi collegarti al database "mysql" che e' quello amministrativo e poi farti una select dalla colonna "db" della tabella "db" da cui puoi estrarre l'elenco dei database ...

Ad esempio : SELECT distinct Db FROM db