This is what the paid plugin matches! :)
:set filetype=sql :runtime macros/matchit.vim
Subsequently, I could use % in begin / end too.
See :help sql-matchit and :echo b:match_words (after you set the file type to sql) for a list of all% word pairs working.
Thus, assuming b:match_words does not include begin / end by default, you should add a new pair as follows:
:let b:match_words .= ',\<begin\>:\<end\>'
source share