What is the right signature for a data provider?

Is not a real problem but during a pull request I saw a comment a dataProvider like:

public function fooBar()
{
    return [
        ['some', 'data', 'here'],
        ['and', 'here']
    ];
}

And someone commented that method should be static. Documentation says that… “A data provider method must be public and either return an array of arrays or an object that implements the Iterator interface and yields an array for each iteration step.” and no static is mentioned.

Documentation is clear but… Must, or can, be static in some cases? Are there some rules about this stuff that are not in the documentation?