Probably simplest with `regclass` as input and an `OUT` parameter:

```
CREATE OR REPLACE FUNCTION f_last_update(_tbl regclass, OUT _last_update timestamp)
  LANGUAGE plpgsql AS
$func$
BEGIN
   EXECUTE 'SELECT max(updated_at) FROM ' || _tbl
   INTO _last_update;
END
$func$;
```

Safe against SQL injection because `regclass` is automatically quoted and schema-qualified properly when converted to `text`.

See:

- [Table name as a PostgreSQL function parameter][1]
- https://dba.stackexchange.com/questions/280724/find-tables-with-columns-with-empty-and-null-values-in-postgresql/280765#280765
- https://dba.stackexchange.com/questions/81966/check-whether-empty-strings-are-present-in-character-type-columns/82030#82030


  [1]: https://stackoverflow.com/a/10711349/939860