Interesting question.
Without knowing anything of your requirements, my first thought goes to the database model. Not that this helps you at all, but I would think this architecture would have lent itself to a multi-tenant strategy. That might have made this a bit easier since you'd only have the single database resource.
That said, it seems like you can still pull this off by perhaps using JNDI to set up a resource per client that defines which JDBC resource to use. You'll have to change your application to no longer look directly for the JDBC resource by name, instead it would pick up the JNDI name for that client. You'd still need to create multiple JDBC resources (one for each client).