What is the difference between Arrow Flight SQL JDBC Driver and ADBC JDBC Driver?

Hello, I’m kind of new to Dremio and Arrow data in general and currently doing some research about connecting to Dremio datasets in Java. I’m reading about these two different JDBC drivers:
https://arrow.apache.org/docs/java/flight_sql_jdbc_driver.html
and
https://arrow.apache.org/adbc/0.5.1/faq.html#and-then-what-is-the-adbc-jdbc-driver

and I’m having some trouble understanding the differences between them and which would be better to use in terms of scalability, performance, etc.

Am I correct in understanding that they’re more or less the same thing, except that the ADBC driver can support databases that either don’t support returning Arrow data, or support Arrow data through a protocol besides Flight SQL (as written in the docs). Because of that it could be used with other databases and not only Dremio. They both still use Flight Sql wire protocol, right? Are there any other benefits of using the ADBC JDBC Driver over the Arrow Flight SQL JDBC Driver for Dremio?