If I understand this correctly, it should be possible natively. If it isn’t, I’ll bet my pants a plugin can do it. In fact, I’d be willing to write it.
My approach would be:
Javascript calls the ‘contents’ template with an additional segment to specify the page (i.e. template_group/contents_tmpl/sermons).
The contents template then uses the added segment as the table and runs the query.
{exp:query sql="SELECT {segment_3} FROM my_contents_table LIMIT 1"}
// This part 'should' work
{{segment_3}}
{/exp:query}
The rest is done as always - get the responseText and update the div.
Untested, but hopefully this will put you on the right path. As Leslie said, just play around with the core version a bit to get a feel for it.