the variable result is always receiving the value 0, what cause the non execution of code inside the if.
From Statement#executeUpdate
javadoc:
Returns:
either (1) the row count for SQL Data Manipulation Language (DML) statements or (2) 0 for SQL statements that return nothing
In your case, you're executing a DDL statement that returns nothing, so your output will always be 0. This doesn't mean the statement didn't get executed, it is just how the underlying implementation should behave (and it's ok).
By the way, in JDBC, you should not append semicolon to your SQL statements, so remove the semicolon at the end of your statement:
//no semicolon at the end
int result = stmt.executeUpdate("CREATE DATABASE horario WITH OWNER "+ usuario);