I'm posting this here to have a place to gather any information about using Postgres 12 with the most recent releases of Coldfusion. In our current environment (Postgres 12 and CF2018), we are getting errors thrown by Postgres indicating a very mismatch between the client (CF's JDBC Postgres driver) and our Postgres 12 database server. We do not see these errors when connecting to our Postgres 11 server. I will document here our updating attempts to resolve this issue. First, we will update to CF2021. This may resolve the issue, but I'm not optimistic as the support matrix only says Postgres 11. If that does not succeed, we will try simply replacing the jdbc driver jar and test that. Hopefully it won't break coldfusion and will resolve the errors. If anyone else has done this, I'd love to hear how your experience went. If anyone from Adobe has any advice or news on if/when Postgres 12 will be officially supported, that would be great to have!
I have had to solve the problem you mention: version compatibility. Not only with PostgreSQL, but with other drivers, too. Notably, SQL Server and MySQL.
I always start, first and foremost, by looking at the ColdFusion Support Matrix. Suppose that it tells me the driver version supported is X. Next, I read the release notes of all the updates of my ColdFusion version, paying attention to updates on support for driver X. If there are any such updates, then I will update ColdFusion and the database drivers accordingly.
When studying the updates another aspect I usually consider is release-date. Compare the release-date of your ColdFusion version with that of the database driver. (PostgreSQL 11: released October 2017; ColdFusion 2018: released July 2018; PostgreSQL 12: released October 2019. This tells you the relevant ColdFusion updates are those from October 2019 onwards)
If in your research you find that there are no ColdFusion updates on support for the driver, you will be advised to continue to use version X. With safety in the knowledge that it has exhaustively been tried and tested by the ColdFusion Team. In fact, you would then be following generally accepted best-practice.
According to best-practice in software, you should not use major version X+1 on the basis of having tested with major version X. That is because a change in major version amounts to a breaking change. Things will literally break.
Suppose, for example, you have in your environment exhaustively tested up to PostgreSQL 11.6. Here the major version number X is 11; the minor version number is 6. So, according to best-practice you shouldn't use PostgreSQL 12.* in your environment. If you do, you will have to expect breaking changes.
Nevertheless, you still have options: