Java UDFs do not have access to the JDBC default connection, so you cannot execute SQL statements using the JDBC default connection. (C/C++ UDFs have the same limitation.)
You are correct that the JDBC default connection is only available for Java Stored Procedures.
Speaking generally, you may be able to use a table operator instead of a UDF. A table operator is a kind of UDF, so it is still subject to the same limitation of not being able to use the JDBC default connection. However, your application may be able to execute a preliminary insert...select to populate a volatile table or global temp table, and then a table operator can utilize those rows.
In order to be able to suggest a workaround, I would need to understand more about what you are trying to accomplish. What is the intended purpose of your Java UDF? And what information did you intend the Java UDF to query using the JDBC default connection?
Regarding: "I suggested that we do this in pre-calculated table form but the problem is that the parameter values can vary depending upon user and region."
That approach may be the one you need to use. You can select user-specific values from a table by comparing with the USER built-in system function. Other attributes like region can perhaps be designated with a Query Band value, and you can also reference those in WHERE-clause conditions.