Casting is never type-safe: there's always the possibility of getting a ClassCastException at runtime when you do a cast. So, it's best to avoid having to cast as much as possible.
What framework are you using to do that database query? Does it always return a Map<String, Object> when you do a query? If yes, and you cannot change it, then you'll be forced to cast the Object value to something that you can use (such as a List<String> in your example).
Class SimpleJdbcCall has this method
Map<String,Object> execute() - Execute the stored procedure and return a map of output params, keyed by name as in parameter declarations.
I guess i would have to do the same i.e. suppress warnings .