The GET SNAPSHOT command and the TABLE FUNCTIONS (which is EXTERNAL LANGUAGE C, BTW) are two different interfaces that call this API to get the information.
All table functions(whether snapshot or not) has to reside in a database and can be called using SQL. In the case of snapshot functions, the table function is an EXTERNAL LANGUAGE C function. The C program calls the snapshot API. Hence, to get the snapshot you have to connect to the database.
In case of GET SNAPSHOT command, the program for calling the snapshot API is invoked directly(ie, without going through SQL) and hence does not need a database connection.
In both cases, the instance snapshot information is held by DB2 in the same place (NOT inside the database).
These are just two different methods for accessing that information.
Visit the new-look IDUG Website , register to gain access to the excellent content.