I'd advise against returning an std::vector<std::string> as well. Instead, I'd pass an iterator, and have the function write the data to wherever the iterator points. This way, the function can equally well write the data to a vector, or a deque, or (if you want) directly to an output stream.
Using that, your function borders on trivial:
// I've changed the definition slightly, to let you pass it a filename instead
// of hard-coding one.
//
template <class outIt>
void read_file(std::string const &filename, outIt output) {
std::ifstream in(filename);
std::string line;
while (std::getline(in, line))
*output++ = line;
}
To use this to copy the data to standard output, roughly as in the question, you'd do something like:
read_file("plik", std::ostream_iterator<std::string>(std::cout, "\n"));