Probably, although it depends on what structure the data is in in Java land. Freemarker handles basic operations on collections (hashes, sequences). If you have a Map in Java, Freemarker will let you use it like a "hash" (you can get its keys directly), and Lists in Java look like "sequences" in Freemaker.
If you had, say, in Java, a List<List<String>>
representing a list of tables, then you could walk them in FTL like:
<#-- getMyTables() is a call into the primary template model object -->
<#assign myTables = getMyTables() />
<#list myTables as table>
<#list table as column>
${column}
</#list>
</#list>
If your collections are custom classes that do not implement the List or Map interfaces, then you can of course simply access their methods directly (Freemarker supports the direct access of methods on its template model and anything you can get out of the template model). E.g.
<#-- getMyTablesAsList() is a call into the primary template model object -->
<#assign myTables = getMyTablesAsList() />
<#list myTables as table>
<#list table.getColumnNames() as column>
${column}
</#list>
</#list>