Não é o trabalho para NamingStrategy ?
Você obteria o nome da entidade gerenciada (ou seja, Cliente) e deveria decidir o nome da tabela usada (
entityName.toLowerCase()
no seu caso). Uma coisa que não tenho certeza é se as NamingStrategies são levadas em consideração ao gerar tabelas (hbm2ddl).