Pelo que eu conheço da parte Java EE, a resposta é não!
Quando se usa JPA ou via JDBC direto, você obtém uma Connection via DataSource, que por sua vez, é um recurso gerenciado pelo contêiner. Você sempre obtém o DataSource via JNDI, e a configuração de dados é sempre via intyerface gráfica do servidor ou arquivo XML que você põe em algum lugar.
Na minha opinião, mudar banco de dados em tempo de execução é uma funcionalidade esdrúxula. Primeiro porque banco de dados é definido em tempo de deployment, e no caso, não há nenhum impedimento do adminstrador cuidar das configurações do servidor. Outra, como a aplicação depende dos dados armazenados, permitir que o usuário mude de banco implica que se tem que fazer uma CÓPIA dos dados de um banco pra outro, que pode levar HORAS!
Se isso for uma necessidade real, não uma mera curiosidade sua, considere entender o porquê desse pedido.