Eu suspeito que você criou a tabela usando aspas duplas usando, por exemplo,
"Clients"
ou alguma outra combinação de caracteres maiúsculos/minúsculos e, portanto, o nome da tabela faz distinção entre maiúsculas e minúsculas agora. O que a afirmação
SELECT table_schema, table_name
FROM information_schema.tables
WHERE lower(table_name) = 'clients'
Retorna?
Se o nome da tabela que é retornado não for minúsculo, você deve usar aspas duplas ao se referir a ela, algo assim:
String query = "SELECT * FROM \"Clients\"";