I have a function that returns multiple result sets using refcursor. To give you an idea, here is how it is done:
refcursor
CREATE OR REPLACE FUNCTION showc