Olhem a sutileza…
Olhando a documentação, a sintaxe é algo como:
ALTER USER sa SET PASSWORD ‘senha’
Quando você usa PreparedStatement, ele não consegue trocar os identificadores (ou seja, as coisas que não são cercadas por aspas) usando setString (o setString é algo que implicitamente põe as aspas. - do jeito que você fez, ele tenta fazer algo como ALTER USER ‘sa’ SET PASSWORD ‘senha’ mas ele não aceita as aspas em torno do nome do usuário .
Portanto, para montar o comando, provavelmente você terá de fazer algo como:
String sql = "ALTER USER " + usuario + " SET PASSWORD ?";
...
pstm.setString (1, senha);
Ok amigo, muito obrigado, amanhã quando chegar no trabalho testarei e postarei o resultado.
Só pra avisar, se alguém um dia precisar, ao alterar o nome de usuário do h2, automaticamente a senha se tornará inválida, obrigando assim seta-la em seguida.