O esquema padrão para sua conexão atual é o nome do usuário que você usa para fazer login. Portanto, se seu usuário for
SCOTT
você tem que usar SCOTT
para DatabaseMetaData.getTables()
. Você pode obter o nome de usuário através de
DatabaseMetaData.getUserName()
. Mas lembre-se que a comparação de esquema/nome de usuário feita no driver JDBC diferencia maiúsculas de minúsculas e normalmente os nomes de usuário estão em maiúsculas.
Não tenho 100% de certeza se
DatabaseMetaData.getUserName()
retornará o nome no caso correto em todas as situações. Para ter certeza, você pode querer fazer um upperCase() antes de usar esse valor.